\documentclass[utf8]{ctexart}

\usepackage[a4paper,left=1.25in,right=1.25in,top=1in,bottom=1in]{geometry}
\usepackage{listings}
\usepackage{graphicx}
\usepackage{subfigure}
\usepackage{booktabs}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amsfonts}
\usepackage{float}
\usepackage{indentfirst}
\usepackage{gnuplot-lua-tikz}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows}
\usetikzlibrary{shapes.geometric, arrows}
\usepackage{algorithm}
\usepackage{algorithmic}
\usepackage{newclude}
\usepackage[perpage]{footmisc}

\graphicspath{ {../images/} }
\raggedbottom	% 令页面在垂直方向向顶部对齐
\renewcommand\qedsymbol{QED}
\newcommand{\sign}[1]{\mathrm{sgn}(#1)}
\everymath{\displaystyle}   % 行内公式采用行间公式格式排列

\title{第三次上机作业报告}
\author{姓名：殷文良\qquad 学号：3200101893}
\date{}

\begin{document}
\maketitle
\CTEXsetup[format={\Large\bfseries}]{section}

\section{理论分析}
\begin{enumerate}
\item
  $O(K)$是执行中序遍历的时间，其中$K$是输出结点的个数；
\item
  边界情况：查找到大量结点，并且不同深度的结点的数目与树的深度呈正相关，且需要到达一些叶子（没有找到结点的情形）。由于树的平均深度为$O(\log{N})$，因此得到平均边界$O(K+\log{N})$。
\end{enumerate}


\section{测试说明}
\begin{itemize}
\item
  在shell终端输入\verb!make report!，可以得到上机报告report.pdf；
\item
  在shell终端输入\verb!make(compile)!，可以编译C++程序main.cpp，输入\verb!./test!可在终端得到输出结果；
\item
  在shell终端输入\verb!bash run!，可以将输出结果重定向到文件result.txt中；
\item
  在shell终端输入\verb!make check!，可以检查程序main.cpp的内存泄漏情况。
\end{itemize}

\section{测试结果}
\subsection{程序运行结果}
图\ref{fig1}显示了数组大小为10的数组在排序前后的结果，验证了排序算法的正确性。
\begin{figure}[H]
  \centering
  \includegraphics[width=0.771\textwidth,height=0.410\textwidth]{2_1.png}
  \caption{程序运行结果}
  \label{fig1}
\end{figure}

\subsection{内存泄露检查}
图\ref{fig2}说明程序不存在内存泄露的情况。
\begin{figure}[H]
  \centering
  \includegraphics[width=0.789\textwidth,height=0.742\textwidth]{2_2.png}
  \caption{内存泄漏检查}
  \label{fig2}
\end{figure}
  

\end{document}
